package com.go.where.family.service;

import java.util.List;
import java.util.Map;

import com.go.where.family.pojo.AccountRelationInfo;
import com.go.where.family.pojo.CustomerInfo;
import com.go.where.family.scoket.Head;

/**
 * 用户信息service
 * 
 * @author java
 * 
 */
public interface CustomerService {

	/**
	 * 绑定第三方账号
	 * 
	 * @param accountRelationInfo
	 * @return
	 */
	public int saveBindAccount(AccountRelationInfo accountRelationInfo);

	public int updateBindAccount(AccountRelationInfo accountRelationInfo);

	/**
	 * 解除绑定
	 * 
	 * @param accountRelationInfo
	 * @return
	 */
	public int deleteBindAccount(AccountRelationInfo accountRelationInfo);

	/**
	 * 查询第三方账号是否存在
	 * 
	 * @param accountRelationInfo
	 * @return
	 */
	public List<AccountRelationInfo> queryAccRelaByParameter(
			AccountRelationInfo accountRelationInfo);

	/**
	 * 获取下一个递增序列值
	 * 
	 * @return
	 */
	public String getNextInviteCode();

	/**
	 * 保存用户信息
	 * 
	 * @param userInfo
	 * @param head
	 * @return
	 */
	public int save(CustomerInfo userInfo, Head head);

	/**
	 * 主键查询信息
	 * 
	 * @param id
	 * @param head
	 * @return
	 */
	public CustomerInfo queryByPrimaryKey(String id, Head head);

	/**
	 * 通过昵称查询
	 * 
	 * @param nick
	 * @param head
	 * @return
	 */
	public CustomerInfo queryByCustomerNick(String nick, Head head);

	/**
	 * 修改信息
	 * 
	 * @param userInfo
	 * @param head
	 * @return
	 */
	public int update(CustomerInfo userInfo, Head head);

	/**
	 * 通过我的邀请码查询信息
	 * 
	 * @param myInviteCode
	 * @param head
	 * @return
	 */
	public CustomerInfo queryByMyInviteCode(String myInviteCode, Head head);

	/**
	 * 通过手机号码修改密码
	 * 
	 * @param info
	 * @param head
	 * @return
	 */
	public int updatePwd(CustomerInfo info, Head head);

	/**
	 * 通过手机号码查询
	 * 
	 * @param mobile
	 * @param head
	 * @return
	 */
	public CustomerInfo queryByMobile(String mobile, Head head);

	/**
	 * 通过用户id集合查询对应用户信息
	 * 
	 * @param customerIds
	 * @return
	 */
	public List<CustomerInfo> getUserListByUserIds(Map<String, Object> para);

	/**
	 * 分页查询
	 * 
	 * @param para
	 * @return
	 */
	public List<CustomerInfo> queryPage(Map<String, Object> para);

	/**
	 * 通过用户手机号码集合查询对应用户信息
	 * 
	 * @param para
	 * @return
	 */
	public List<CustomerInfo> getUserListByMobiles(Map<String, Object> para);

	/**
	 * 获取用户id
	 * 
	 * @param para
	 * @return
	 */
	public List<String> getUserIdList(Map<String, Object> para);

	/**
	 * 查询总记录数
	 * 
	 * @param para
	 * @return
	 */
	public Integer queryCount(Map<String, Object> para);

}
